home *** CD-ROM | disk | FTP | other *** search
-
-
-
- TTTTccccllll____CCCCrrrreeeeaaaatttteeeePPPPiiiippppeeeelllliiiinnnneeee((((3333)))) TTTTccccllll (((( )))) TTTTccccllll____CCCCrrrreeeeaaaatttteeeePPPPiiiippppeeeelllliiiinnnneeee((((3333))))
-
-
-
- _________________________________________________________________
-
- NNNNAAAAMMMMEEEE
- Tcl_CreatePipeline - create one or more child processes,
- with I/O redirection
-
- SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
- ####iiiinnnncccclllluuuuddddeeee <<<<ttttccccllll....hhhh>>>>
-
- int
- TTTTccccllll____CCCCrrrreeeeaaaatttteeeePPPPiiiippppeeeelllliiiinnnneeee(_i_n_t_e_r_p, _a_r_g_c, _a_r_g_v, _p_i_d_A_r_r_a_y_P_t_r, _i_n_P_i_p_e_P_t_r, _o_u_t_P_i_p_e_P_t_r, _e_r_r_F_i_l_e_P_t_r)
-
- AAAARRRRGGGGUUUUMMMMEEEENNNNTTTTSSSS
- Tcl_Interp *_i_n_t_e_r_p (in) Interpreter to use
- for error reporting.
-
- int _a_r_g_c (in) Number of strings in
- _a_r_g_v array.
-
- char **_a_r_g_v (in) Array of strings
- describing command(s)
- and I/O redirection.
-
- int **_p_i_d_A_r_r_a_y_P_t_r (out) The value at
- *_p_i_d_A_r_r_a_y_P_t_r is
- modified to hold a
- pointer to an array
- of process
- identifiers. The
- array is dynamically
- allocated and must be
- freed by the caller.
-
- int *_i_n_P_i_p_e_P_t_r (out) If this argument is
- NULL then standard
- input for the first
- command in the
- pipeline comes from
- the current standard
- input. If _i_n_P_i_p_e_P_t_r
- is not NULL then
- TTTTccccllll____CCCCrrrreeeeaaaatttteeeePPPPiiiippppeeeelllliiiinnnneeee
- will create a pipe,
- arrange for it to be
- used for standard
- input to the first
- command, and store a
- file id for writing
- to that pipe at
- *_i_n_P_i_p_e_P_t_r. If the
- command specified its
- own input using
-
-
-
- Page 1 (printed 7/10/95)
-
-
-
-
-
-
- TTTTccccllll____CCCCrrrreeeeaaaatttteeeePPPPiiiippppeeeelllliiiinnnneeee((((3333)))) TTTTccccllll (((( )))) TTTTccccllll____CCCCrrrreeeeaaaatttteeeePPPPiiiippppeeeelllliiiinnnneeee((((3333))))
-
-
-
- redirection, then no
- pipe is created and
- -1 is stored at
- *_i_n_P_i_p_e_P_t_r.
-
- int *_o_u_t_P_i_p_e_P_t_r (out) If this argument is
- NULL then standard
- output for the last
- command in the
- pipeline goes to the
- current standard
- output. If
- _o_u_t_P_i_p_e_P_t_r is not
- NULL then
- TTTTccccllll____CCCCrrrreeeeaaaatttteeeePPPPiiiippppeeeelllliiiinnnneeee
- will create a pipe,
- arrange for it to be
- used for standard
- output from the last
- command, and store a
- file id for reading
- from that pipe at
- *_o_u_t_P_i_p_e_P_t_r. If the
- command specified its
- own output using
- redirection then no
- pipe is created and
- -1 is stored at
- *_o_u_t_P_i_p_e_P_t_r.
-
- int *_e_r_r_F_i_l_e_P_t_r (out) If this argument is
- NULL then error
- output for all the
- commands in the
- pipeline will go to
- the current standard
- error file. If
- _e_r_r_F_i_l_e_P_t_r is not
- NULL, error output
- from all the commands
- in the pipeline will
- go to a temporary
- file created by
- TTTTccccllll____CCCCrrrreeeeaaaatttteeeePPPPiiiippppeeeelllliiiinnnneeee.
- A file id to read
- from that file will
- be stored at
- *_e_r_r_F_i_l_e_P_t_r. The
- file will already
- have been removed, so
- closing the file
- descriptor at
-
-
-
- Page 2 (printed 7/10/95)
-
-
-
-
-
-
- TTTTccccllll____CCCCrrrreeeeaaaatttteeeePPPPiiiippppeeeelllliiiinnnneeee((((3333)))) TTTTccccllll (((( )))) TTTTccccllll____CCCCrrrreeeeaaaatttteeeePPPPiiiippppeeeelllliiiinnnneeee((((3333))))
-
-
-
- *_e_r_r_F_i_l_e_P_t_r will
- cause the file to be
- flushed completely.
- _________________________________________________________________
-
-
- DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
- TTTTccccllll____CCCCrrrreeeeaaaatttteeeePPPPiiiippppeeeelllliiiinnnneeee processes the _a_r_g_v array and sets up one
- or more child processes in a pipeline configuration.
- TTTTccccllll____CCCCrrrreeeeaaaatttteeeePPPPiiiippppeeeelllliiiinnnneeee handles pipes specified with ``|'', input
- redirection specified with ``<'' or ``<<'', and output
- redirection specified with ``>''; see the documentation for
- the eeeexxxxeeeecccc command for details on these specifications. The
- return value from TTTTccccllll____CCCCrrrreeeeaaaatttteeeePPPPiiiippppeeeelllliiiinnnneeee is a count of the
- number of child processes created; the process identifiers
- for those processes are stored in a _m_a_l_l_o_c-ed array and a
- pointer to that array is stored at *_p_i_d_A_r_r_a_y_P_t_r. It is the
- caller's responsibility to free the array when finished with
- it.
-
- If the _i_n_P_i_p_e_P_t_r, _o_u_t_P_i_p_e_P_t_r, and _e_r_r_F_i_l_e_P_t_r arguments are
- NULL then the pipeline's standard input, standard output,
- and standard error are taken from the corresponding streams
- of the process. Non-NULL values may be specified for these
- arguments to use pipes for standard input and standard
- output and a file for standard error. TTTTccccllll____CCCCrrrreeeeaaaatttteeeePPPPiiiippppeeeelllliiiinnnneeee
- will create the requested pipes or file and return file
- identifiers that may be used to read or write them. It is
- the caller's responsibility to close all of these files when
- they are no longer needed. If _a_r_g_v specifies redirection
- for standard input or standard output, then pipes will not
- be created even if requested by the _i_n_P_i_p_e_P_t_r and _o_u_t_P_i_p_e_P_t_r
- arguments.
-
- If an error occurs in TTTTccccllll____CCCCrrrreeeeaaaatttteeeePPPPiiiippppeeeelllliiiinnnneeee (e.g. ``|'' or
- ``<'' was the last argument in _a_r_g_v, or it wasn't possible
- to fork off a child), then -1 is returned and _i_n_t_e_r_p->_r_e_s_u_l_t
- is set to an error message.
-
-
- SSSSEEEEEEEE AAAALLLLSSSSOOOO
- TTTTccccllll____DDDDeeeettttaaaacccchhhhPPPPiiiiddddssss, TTTTccccllll____RRRReeeeaaaappppDDDDeeeettttaaaacccchhhheeeeddddPPPPrrrrooooccccssss
-
-
- KKKKEEEEYYYYWWWWOOOORRRRDDDDSSSS
- background, child, detach, fork, process, status, wait
-
-
-
-
-
-
-
-
-
- Page 3 (printed 7/10/95)
-
-
-
-